"""
@Author : 合肥一元数智教育科技有限公司
@Date :  2025/10/31 9:41
@Description : 
为了保证程序的健壮性，可以对可能出现异常的代码进行异常抓取,阻止代码中断
语法:
  try:
      可能出现异常的代码
  except   异常名称 :
      针对该异常的处理方案
  ....
  else:
       没有异常会执行
  finally:
       有没有异常均执行
"""

# 计算两个数的商
num1 = float(input('请输入第一个数字:'))
num2 = float(input('请输入第二个数字:'))

#  ZeroDivisionError: float division by zero
try:
    result = num1 / num2
    print(f'{num1} / {num2} = {result}')

    # 遍历列表
    num_list = [1, 2, 3, 4]
    print(f'{num_list} index 3  = {num_list[3]}')

    # 学生信息
    student = {
        'name': 'lisi',
        'age': 18
    }
    print(f'student name is {student["name"]}')
except IndexError:
    print('出现异常了,索引越界...')
except ZeroDivisionError:
    print('出现异常了,除数不能为零...')
# 异常处理时 如果有多个异常需要处理 需要注意异常之间的顺序  先写小异常在写大异常    大小是基于继承关系  先写子类 在写父类
except Exception as e:
    print(f'程序出现异常,异常信息是{e},{type(e)}')

else:
    print('程序没有异常 else 分支被执行了... ')
finally:
    # 程序不管是否出现异常均要执行      资源释放   数据库连接
    print('finally 不管是否出现异常均要执行')

print('-------------程序执行结束-------------------')
